package com.user.bean;


/*User实体类，用于对user相关数据进行封装*/
public class User implements Comparable<User>{

//	私有username属性
	private String username;

//	私有password属性
	private String password;

//	无参构造器
	public User() {
		
	}
//	包含所有属性的有参构造器
	public User(String username,String password) {
//		初始化username属性
		this.username=username;
//		初始化password属性
		this.password=password;
	}
//	不包含主键username属性的有参构造器
	public User(String password) {
//		初始化password属性
		this.password=password;
	}
//	设置username属性
	public User setUsername(String username){
		this.username=username;
		return this;
	}
//	获取username属性
	public String getUsername(){
		return this.username;
	}
//	设置password属性
	public User setPassword(String password){
		this.password=password;
		return this;
	}
//	获取password属性
	public String getPassword(){
		return this.password;
	}
//	重写父类的toString方法
	public String toString() {
		return "User [username="+getUsername()+", password="+getPassword()+"]";
	}
//	重写父类的equals方法
	public boolean equals(Object obj) {
//	若传入的obj对象不属于User类型
		if (!(obj instanceof User)) {
//		抛出类型转化异常
			throw new ClassCastException("obj无法强转成User类型");
		}
//	把obj对象强转成User类型
		User user=(User) obj;
//		返回当前对象的各个属性与user对象的各个属性相比较的结果
		return username.equals(user.username)&&password.equals(user.password);
	}
//	重写父类的hashCode方法
	public int hashCode() {
//		返回当前对象的各个属性的hashCode方法之和
		return username.hashCode()+password.hashCode();
	}
//	实现Comparable接口中的方法，让当前类的对象具备可比性
	public int compareTo(User user) {
//		比较当前对象与user对象的username属性
		int compareTo = username.compareTo(user.username);
//			若username属性相等
		if (compareTo==0) {
//			比较当前对象与user对象的password属性
			compareTo=password.compareTo(user.password);
		}
//		返回比较结果
		return compareTo;
	}
}